#!/usr/bin/env python

# top level waf build script for samba4

import os
srcdir = "."

import samba_version

# mark this as a top level build, for source3 rules
bld.env.toplevel_build = True
bld.env.use_intree_heimdal = True
bld.env.suffix3 = "3"

# create separate build groups for building the asn1 and et compiler, then
# building the C from ASN1 and IDL, and finally the main build process
bld.SETUP_BUILD_GROUPS()
bld.AUTOCLEANUP_STALE_FILES()

# enable building of public headers in the build tree
bld.env.build_public_headers = 'include/public'

# these are includes which appear in public headers, but with #ifdef conditional
# compilation, so they are safe
bld.env.public_headers_skip = ['param/param_proto.h', 'lib/ldb_compat.h']

# force headers to use SAMBA4 rules
bld.env.public_headers_replace = { '#if _SAMBA_BUILD_ == 4' : '#if 1 /* _SAMBA_BUILD_ == 4 */' }

samba_version.load_version(bld.env)
bld.SAMBA_MKVERSION('version.h')

# bld.ENABLE_MAGIC_ORDERING()

bld.RECURSE('lib/replace')
bld.RECURSE('lib/talloc')
bld.RECURSE('lib/tdb')
bld.RECURSE('lib/tevent')
bld.RECURSE('source4/lib/ldb')
bld.RECURSE('source4/dynconfig')
bld.RECURSE('lib/util/charset')
bld.RECURSE('source4/scripting/python')
bld.RECURSE('source4/param')
bld.RECURSE('source4/librpc')
bld.RECURSE('source4/dsdb')
bld.RECURSE('source4/smbd')
bld.RECURSE('source4/cluster')
bld.RECURSE('source4/smbd')
bld.RECURSE('source4/libnet')
bld.RECURSE('source4/auth')
bld.RECURSE('auth')
bld.RECURSE('lib/iniparser/src')
bld.RECURSE('nsswitch')
bld.RECURSE('nsswitch/libwbclient')
bld.RECURSE('source4/lib/samba3')
bld.RECURSE('source4/lib/socket')
bld.RECURSE('source4/lib/ldb-samba')
bld.RECURSE('source4/lib/tls')
bld.RECURSE('source4/lib/registry')
bld.RECURSE('source4/lib/messaging')
bld.RECURSE('source4/lib/events')
bld.RECURSE('source4/lib/cmdline')
bld.RECURSE('lib/socket_wrapper')
bld.RECURSE('lib/nss_wrapper')
bld.RECURSE('lib/uid_wrapper')
bld.RECURSE('lib/popt')
bld.RECURSE('source4/lib/stream')
bld.RECURSE('lib/util')
bld.RECURSE('lib/tdr')
bld.RECURSE('lib/tsocket')
bld.RECURSE('lib/crypto')
bld.RECURSE('lib/torture')
bld.RECURSE('lib/zlib')
bld.RECURSE('source4/lib')
bld.RECURSE('source4/lib/com')
bld.RECURSE('source4/dns_server')
bld.RECURSE('source4/echo_server')
bld.RECURSE('source4/smb_server')
bld.RECURSE('source4/rpc_server')
bld.RECURSE('source4/ldap_server')
bld.RECURSE('source4/web_server')
bld.RECURSE('source4/winbind')
bld.RECURSE('source4/nbt_server')
bld.RECURSE('source4/wrepl_server')
bld.RECURSE('source4/cldap_server')
bld.RECURSE('source4/ntp_signd')
bld.RECURSE('source4/samba_tool')
bld.RECURSE('source4/utils')
bld.RECURSE('source4/ntvfs')
bld.RECURSE('source4/ntptr')
bld.RECURSE('source4/torture')
bld.RECURSE('librpc')
bld.RECURSE('source4/client')
bld.RECURSE('source4/libcli')
bld.RECURSE('libcli/smb')
bld.RECURSE('libcli/cldap')
bld.RECURSE('lib/subunit/c')
bld.RECURSE('source4/kdc')
bld.RECURSE('lib/smbconf')
bld.RECURSE('lib/async_req')
bld.RECURSE('libcli/security')
bld.RECURSE('libcli/ldap')
bld.RECURSE('libcli/nbt')
bld.RECURSE('libcli/netlogon')
bld.RECURSE('libcli/auth')
bld.RECURSE('libcli/drsuapi')
bld.RECURSE('libcli/echo')
bld.RECURSE('libcli/samsync')
bld.RECURSE('libcli/registry')
bld.RECURSE('source4/lib/policy')
bld.RECURSE('libcli/named_pipe_auth')
bld.RECURSE('source4/heimdal_build')
bld.RECURSE('libcli/smbreadline')
bld.RECURSE('codepages')
bld.RECURSE('source4/setup')
bld.RECURSE('source4/scripting')
bld.RECURSE('pidl')
bld.RECURSE('lib')
bld.RECURSE('libds/common')
if bld.env.enable_s3build:
    bld.RECURSE('source3')

bld.RECURSE('testsuite/headers')

# install some extra empty directories
bld.INSTALL_DIRS("", "${LOCKDIR} ${SYSCONFDIR} ${LOCKDIR} ${PIDDIR} ${LOCALSTATEDIR}/lib ${PRIVATEDIR}/smbd.tmp/messaging")

bld.SYMBOL_CHECK()
